home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-10-18 | 63.2 KB | 2,477 lines |
- 'QBASIC'de çalìƒìr
- 'ÿletiƒim bufferi bu dilde standart 512 byte'dìr, yavaƒ bir hìz seçiniz
-
- 'QuickBasic de çalìƒmasì için ise versiyon 7.1 QBX /L QBX /C:32000
- ' versiyon 4.5 QB /L QB /C:32000
- ' ƒeklinde yüklenmelidir.
-
- 'Her türlü modemde çalìƒan iletiƒim programì
- 'Com1,....Com8 arasì seri çìkìƒ
- 'IRQ2,....IRQ7 arasì kesme istemi
- '2400,...115200 Bps hìz
-
-
- 'Yapìm : Gürol DEMÿR, Mersin (ÿçel), Aºustos 1995
-
- DECLARE SUB TutanakAc ()
- DECLARE SUB OtomatikSec ()
- DECLARE SUB AlmaDizinineGec ()
- DECLARE SUB ProtokolOku ()
- DECLARE SUB DosyaOgren ()
- DECLARE SUB DosyaGonder ()
- DECLARE SUB DosyaAl ()
- DECLARE SUB ProtokolSec ()
- DECLARE SUB ProtokolDefteri ()
- DECLARE SUB TelefonDefteri ()
- DECLARE SUB TerminalChatGelen ()
- DECLARE SUB TerminalChatGiden ()
- DECLARE SUB TerminalGidenler ()
- DECLARE SUB TerminalGelenler ()
- DECLARE SUB TerminalGelenleriYorumla ()
- DECLARE SUB TerminalMakrolar ()
- DECLARE SUB MesajYazTerminal ()
- DECLARE SUB Pencere ()
- DECLARE SUB EkranSakla ()
- DECLARE SUB EkranKoy ()
- DECLARE SUB EkranAc ()
- DECLARE SUB EkranUstuYaz ()
- DECLARE SUB ModemKapa ()
- DECLARE SUB ModemAc ()
- DECLARE SUB ModemHangUp ()
- DECLARE SUB MakroTus ()
- DECLARE SUB MakroTusOku ()
- DECLARE SUB DosyaAc ()
- DECLARE SUB Artma2 ()
- DECLARE SUB Eksilme2 ()
- DECLARE SUB RenkAyar ()
- DECLARE SUB Kullanan ()
- DECLARE SUB Terminal ()
- DECLARE SUB Secim ()
- DECLARE SUB AdresSec ()
- DECLARE SUB PortSec ()
- DECLARE SUB EkranSec ()
- DECLARE SUB Modemsetup ()
- DECLARE SUB AnsiyeBak ()
- DECLARE SUB DizinAc ()
- DECLARE SUB MesajYaz ()
- DECLARE SUB ConfigOku ()
- DECLARE SUB ConfigAc ()
- DECLARE SUB ConfigYaz ()
- DECLARE SUB BaudSec ()
- DECLARE SUB Dizinler ()
- DECLARE SUB BaudSec ()
- DECLARE SUB IrqSec ()
- DECLARE SUB ModemBul ()
- DECLARE SUB Kurulumlar ()
- DECLARE SUB Eksilme ()
- DECLARE SUB Artma ()
- DECLARE SUB Verialma ()
- DECLARE SUB IlkBaslama ()
- DECLARE SUB Ilkkurulma ()
- DECLARE SUB EkranAdresiBul ()
- DECLARE SUB Elveda ()
- DECLARE SUB ArkaPlanCiz ()
- DECLARE SUB HareketliMenu ()
- DECLARE SUB CerceveCiz ()
-
- COMMON SHARED MenuYatay, MenuDikey, MenuGenis, MenuYuksek, MenuSecim$
- COMMON SHARED VerialDikey, VeriAlYatay, Verial$, VeriTipi, VerialBoy
- COMMON SHARED EkranAdresi, Tus$, Hata, Mesaj$, Veri$, Veri1$, Z, JL
- COMMON SHARED Kim$, Tel$, IRQ$, Baud$, Adres$, PortNo$, Ekran$, Katar$
- COMMON SHARED Kosul$, Cevap$, Echo$, Ses$, Yatay, Ekra$, Port, Ek$
- COMMON SHARED DosyaAd$, DosyaBoy, Satir, Sutun, RR, Muzik$, Ekran
- COMMON SHARED HatDolu, Gelen$, Cer$, GelGid$, Z$, Kapasite
- COMMON SHARED Tercih$, Oto$, Mkr$, Sontel, Tutanak$, Makro, Oto
- COMMON SHARED DosyaAdi$, DosyaBoyu
-
- Kapasite = 255
- DIM SHARED Sec$(Kapasite), Sec1$(10), Renk(10), Makro$(36), Al$(4), Dizin$(5)
- DIM SHARED Sakla(30), Gid$(10), Gel$(10), Chat(2), Protokol$(7), Mak$(3)
-
- KEY 6, CHR$(242): 'Küçük büyük harf deºiƒim
-
- ON ERROR GOTO Hatalar
- CALL IlkBaslama
- CALL Elveda
- END
-
- Hatalar:
- IF Hata = 1 THEN RESUME NEXT
- IF Hata = 2 THEN Hata = 3: RESUME NEXT
- IF Hata = 4 THEN Hata = 5: RESUME NEXT
- IF ERR = 57 THEN RESUME
- IF Hata = 1 THEN RESUME NEXT
- CALL ModemKapa
- COLOR 7, 1
- CLS
- Mesaj$ = "!Lütfen bu hatayì bildirin !! Hata No=" + STR$(ERR)
- IF Hata = 3 THEN Mesaj$ = "!Dizin Oluƒturma Hatasì !!"
- CALL MesajYaz
- END
-
- AnsiYuklumu:
- DATA &H50
- DATA &H53
- DATA &H1E
- DATA &HB8,&H00,&H1A
- DATA &HCD,&H2F
- DATA &HBB,&H00,&HB9
- DATA &H8E,&HDB
- DATA &HA2,&H00,&H00
- DATA &H1F
- DATA &H5B
- DATA &H58
- DATA &HCB
-
- 'Yeni interrupt rutini
- YeniKesme:
- DATA &H50 : 'PUSH AX
- DATA &H1E : 'PUSH DS
- DATA &HB8, 0, &HB9 : 'MOV AX, B900
- DATA &H8E, &HD8 : 'MOV DS, AX
- DATA &H88, &H26, 2, 0 : 'MOV [0002], AH
- DATA &HB0, &H20 : 'MOV AL,20
- DATA &HE6, &H20 : 'MOV 20,AL
- DATA &H1F : 'POP DS
- DATA &H58 : 'POP AX
- DATA &HCF : 'IRET
-
- 'ÿnterrupt Kontrol Yazmacìnìn IRQ'ya izin verme rutini
- IRQSerbest:
- DATA &H50 : 'PUSH AX
- DATA &H53 : 'PUSH BX
- DATA &H51 : 'PUSH CX
- DATA &H1E : 'PUSH DS
- DATA &HFA : 'CLI
- DATA &HB8, 0, &HB9 : 'MOV AX,B900
- DATA &H8E, &HD8 : 'MOV DS,AX
- DATA &H31, &HC9 : 'XOR CX,CX
- DATA &HB1, 2 : 'MOV CL,02
- DATA &HBB, 1, 0 : 'MOV BX,0001
- DATA &HD3, &HE3 : 'SHL BX,CL
- DATA &HF7, &HD3 : 'NOT BX
- DATA &HE4, &HA1 : 'IN AL,A1
- DATA &HA2, 0, 0 : 'MOV [0000],AL
- DATA &H20, &HF8 : 'AND AL,BH
- DATA &HE6, &HA1 : 'OUT A1,AL
- DATA &HE4, &H21 : 'IN AL,21
- DATA &HA2, 1, 0 : 'MOV [0001],AL
- DATA &H20, &HD8 : 'AND AL,BL
- DATA &HE6, &H21 : 'OUT 21,AL
- DATA &HFB : 'STI
- DATA &H1F : 'POP DS
- DATA &H59 : 'POP CX
- DATA &H5B : 'POP BX
- DATA &H58 : 'POP AX
- DATA &HCB : 'RETF
-
- SUB AdresSec
- Sec1$(0) = Adres$
- Sec$(1) = CHR$(4) + " $03F8 "
- Sec$(2) = CHR$(4) + " $02F8 "
- Sec$(3) = CHR$(5) + " $03E8 "
- Sec$(4) = CHR$(6) + " $02E8 "
- Sec$(5) = CHR$(6) + " $4220 "
- Sec$(6) = CHR$(3) + " $4228 "
- Sec$(7) = CHR$(3) + " $5220 "
- Sec$(8) = CHR$(3) + " $5228 "
- MenuYatay = 6
- MenuDikey = 55
- MenuGenis = 7
- MenuYuksek = 9
- MenuSecim$ = "32E8045"
- CALL HareketliMenu
- IF Tus$ <> "" THEN Adres$ = MID$(Sec$(Yatay - MenuYatay), 3, 5)
- END SUB
-
- SUB AlmaDizinineGec
- COLOR 7, 1
- CLS
- S = 0
- Q$ = ""
- FOR I = LEN(Dizin$(2)) TO 1 STEP -1
- A$ = MID$(Dizin$(2), I, 1)
- IF A$ = "\" THEN
- IF S = 0 THEN S = 1 ELSE EXIT FOR
- ELSE
- Q$ = Q$ + A$
- END IF
- NEXT
- Q1$ = ""
- FOR I = LEN(Q$) TO 1 STEP -1
- A$ = MID$(Q$, I, 1)
- Q1$ = Q1$ + A$
- NEXT
- CHDIR Q1$
- END SUB
-
- SUB AnsiyeBak
- RESTORE AnsiYuklumu
- REDIM A%(20)
- DEF SEG = VARSEG(A%(0))
-
- FOR I% = 0 TO 19
- READ D%
- POKE VARPTR(A%(0)) + I%, D%
- NEXT I%
-
- CALL absolute(VARPTR(A%(0)))
- DEF SEG
-
- DEF SEG = &HB900
- IF PEEK(0) = 255 THEN Ekra$ = "ANSI"
- END SUB
-
- SUB ArkaPlanCiz
- SCREEN , , 3, 0
- COLOR 9, 7: CLS
- A$ = " Programlama Sanatì.."
- A = LEN(A$)
- FOR I = 0 TO 1840 / A
- B = 80 - C
- IF B <= A THEN
- PRINT LEFT$(A$, B);
- PRINT RIGHT$(A$, A - B);
- C = A - B: D = C
- ELSE
- PRINT A$;
- C = C + A
- END IF
- NEXT
- DEF SEG = EkranAdresi + 256 * 3
- FOR I = 3680 + D * 2 TO 4000 STEP A * 2
- FOR Y = 1 TO A
- POKE I + (Y - 1) * 2, ASC(MID$(A$, Y, 1))
- NEXT
- NEXT
- SCREEN , , 0
- END SUB
-
- SUB Artma
- VeriAlYatay = VeriAlYatay + 1
- IF VeriAlYatay = MenuYatay + MenuYuksek THEN VeriAlYatay = MenuYatay + 1
- END SUB
-
- SUB Artma2
- VeriAlYatay = VeriAlYatay + 1
- IF VeriAlYatay = MenuYatay + MenuYuksek THEN VeriAlYatay = MenuYatay + 2
- END SUB
-
- SUB BaudSec
- Sec$(0) = "[ Hìz ]"
- Sec1$(0) = Baud$
- Sec$(1) = CHR$(4) + " 2400 Bps "
- Sec$(2) = CHR$(4) + " 4800 Bps "
- Sec$(3) = CHR$(5) + " 9600 Bps "
- Sec$(4) = CHR$(3) + " 14400 Bps "
- Sec$(5) = CHR$(4) + " 19200 Bps "
- Sec$(6) = CHR$(3) + " 38400 Bps "
- Sec$(7) = CHR$(4) + " 57600 Bps "
- Sec$(8) = CHR$(4) + " 115200 Bps "
- MenuYatay = 6
- MenuDikey = 60
- MenuGenis = 12
- MenuYuksek = 9
- MenuSecim$ = "24619375"
- CALL HareketliMenu
- IF Tus$ <> "" THEN Baud$ = MID$(Sec$(Yatay - MenuYatay), 3, 6)
- END SUB
-
- SUB CerceveCiz
- COLOR Renk(1), Renk(2)
- FOR I = 1 TO MenuYuksek - 1
- LOCATE MenuYatay + I, MenuDikey: PRINT "║"; STRING$(MenuGenis, " "); "║"
- NEXT
- LOCATE MenuYatay, MenuDikey
- PRINT "╔"; STRING$(MenuGenis, "═"); "╗"
- LOCATE MenuYatay + MenuYuksek, MenuDikey
- PRINT "╚"; STRING$(MenuGenis, "═"); "╝";
-
- DEF SEG = EkranAdresi
- FOR I = 1 TO MenuGenis + 1
- POKE ((MenuYatay + MenuYuksek) * 160 + (MenuDikey + I) * 2 + 1), 9
- NEXT
- FOR I = 1 TO MenuYuksek + 1
- TR = ((MenuYatay + I - 1) * 160 + (MenuDikey + MenuGenis + 1) * 2 + 1)
- POKE TR, 9
- POKE TR + 2, 9
- NEXT
-
- DEF SEG
- LOCATE MenuYatay + MenuYuksek, MenuDikey + MenuGenis - LEN(Cer$) - 1
- PRINT Cer$
- COLOR Renk(3), Renk(4): LOCATE MenuYatay, MenuDikey + 3: PRINT Sec$(0)
- END SUB
-
- SUB ConfigAc
- CLOSE #3
- OPEN "R", #3, "MODEM.KUR", 420
- FIELD #3, 170 AS Veri$, 250 AS Veri1$
- IF LOF(3) <> 420 THEN
- PUT #3, 1
- CALL Ilkkurulma
- END IF
- END SUB
-
- SUB ConfigOku
- CALL ConfigAc
- GET #3, 1
- IF ASC(Veri$) <> 71 THEN
- Veri$ = SPACE$(170)
- Veri1$ = SPACE$(250)
- END IF
- Kim$ = MID$(Veri$, 2, 30)
- Tel$ = MID$(Veri$, 32, 20)
- IRQ$ = MID$(Veri$, 52, 4)
- Baud$ = MID$(Veri$, 56, 6)
- Adres$ = MID$(Veri$, 62, 5)
- PortNo$ = MID$(Veri$, 67, 4)
- Ekran$ = MID$(Veri$, 71, 4)
- Katar$ = MID$(Veri$, 75, 50)
- Kosul$ = MID$(Veri$, 125, 6)
- Cevap$ = MID$(Veri$, 131, 6)
- Echo$ = MID$(Veri$, 137, 6)
- Ses$ = MID$(Veri$, 143, 6)
- Tutanak$ = MID$(Veri$, 149, 6)
- Sontel = VAL(MID$(Veri$, 155, 1))
- IF Sontel = 0 THEN Sontel = 1
- IF Veri$ <> SPACE$(170) THEN
- FOR I = 1 TO 10
- Renk(I) = ASC(MID$(Veri$, 159 + I, 1))
- NEXT
- ELSE
- Katar$ = "ATZ" + SPACE$(47)
- PortNo$ = "Com-"
- Adres$ = "$----"
- Baud$ = "2400"
- IRQ$ = "IRQ7"
- Ekran$ = Ekra$
- Kosul$ = "Açìk "
- Cevap$ = "Açìk "
- Echo$ = "Kapalì"
- Ses$ = "Açìk "
- Tutanak$ = "Kapalì"
- END IF
- Y = 0
- FOR I = 1 TO 250 STEP 50
- Y = Y + 1
- Dizin$(Y) = RTRIM$(MID$(Veri1$, I, 50))
- NEXT
- Port = VAL("&H" + RIGHT$(Adres$, 4))
- IF Ses$ = "Kapalì" THEN Muzik$ = "P4" ELSE Muzik$ = "O2L8CD"
- END SUB
-
- SUB ConfigYaz
- CALL ConfigAc
- B$ = SPACE$(170)
- MID$(B$, 1, 1) = "G"
- MID$(B$, 2, 30) = Kim$
- MID$(B$, 32, 20) = Tel$
- MID$(B$, 52, 4) = IRQ$
- MID$(B$, 56, 6) = Baud$
- MID$(B$, 62, 5) = Adres$
- MID$(B$, 67, 4) = PortNo$
- MID$(B$, 71, 4) = Ekran$
- MID$(B$, 75, 50) = Katar$
- MID$(B$, 125, 6) = Kosul$
- MID$(B$, 131, 6) = Cevap$
- MID$(B$, 137, 6) = Echo$
- MID$(B$, 143, 6) = Ses$
- MID$(B$, 149, 6) = Tutanak$
- MID$(B$, 155, 1) = LTRIM$(STR$(Sontel))
- FOR I = 1 TO 10
- MID$(B$, 159 + I, 1) = CHR$(Renk(I))
- NEXT
- LSET Veri$ = B$
- C$ = SPACE$(250)
- Y = 0
- FOR I = 1 TO 250 STEP 50
- Y = Y + 1
- MID$(C$, I, 50) = Dizin$(Y)
- NEXT
- LSET Veri1$ = C$
- PUT #3, 1
- CALL ConfigOku
- END SUB
-
- SUB DizinAc
- Diz:
- FOR Z = 1 TO 5
- Hata = 2
- D$ = Dizin$(Z) + "$$.4E$"
- CLOSE #4
- OPEN "R", #4, D$, 1
- IF Hata = 3 THEN
- D$ = LEFT$(Dizin$(Z), LEN(Dizin$(Z)) - 1)
- MKDIR D$
- GOTO Diz
- END IF
- FIELD #4, 1 AS E$
- CLOSE #4
- KILL D$
- NEXT
- Hata = 0
- END SUB
-
- SUB Dizinler
- CALL ConfigOku
- IF Dizin$(1) = "" THEN
- COLOR 1, 1
- CLS
- Hata = 1
- FILES "$$.$EF"
- Hata = 0
- B$ = ""
- FOR I = 1 TO 59
- B$ = B$ + CHR$(SCREEN(1, I))
- NEXT
- Dizin$(1) = RTRIM$(B$)
- IF RIGHT$(Dizin$(1), 1) <> "\" THEN Dizin$(1) = Dizin$(1) + "\"
- END IF
- IF Dizin$(2) = "" THEN Dizin$(2) = Dizin$(1) + "GELEN\"
- IF Dizin$(3) = "" THEN Dizin$(3) = Dizin$(1) + "GIDEN\"
- IF Dizin$(4) = "" THEN Dizin$(4) = Dizin$(1) + "PROTOKOL\"
- IF Dizin$(5) = "" THEN Dizin$(5) = Dizin$(1) + "TUTANAK\"
-
- PCOPY 3, 0
- MenuYatay = 9
- MenuDikey = 2
- MenuGenis = 73
- MenuYuksek = 6
- Sec$(0) = "[ Dizinler ]"
- CALL CerceveCiz
-
- Sec1$(1) = "Ana Çalìƒma Dizini"
- Sec1$(2) = "Gelenlerin Yeri"
- Sec1$(3) = "Gideceklerin Yeri"
- Sec1$(4) = "Protokol Programlarì"
- Sec1$(5) = "Görüƒme Tutanaklarì"
-
- FOR I = 5 TO 1 STEP -1
- COLOR Renk(1), Renk(2)
- Sec$(I) = SPACE$(50)
- MID$(Sec$(I), 1, LEN(Dizin$(I))) = Dizin$(I)
- LOCATE MenuYatay + I, MenuDikey + 2
- PRINT Sec1$(I); " ";
- COLOR Renk(9), Renk(10)
- PRINT Sec$(I)
- NEXT
- VeriAlYatay = MenuYatay + 1
- VeriTipi = 3
- DO
- V = VeriAlYatay - MenuYatay
- VerialBoy = LEN(Sec$(V))
- VerialDikey = MenuDikey + LEN(Sec1$(V)) + 3
- Verial$ = Sec$(V)
- CALL Verialma
- LOCATE VeriAlYatay, VerialDikey
- COLOR Renk(9), Renk(10)
- PRINT Verial$
- Sec$(V) = Verial$
-
- SELECT CASE Z
- CASE 80
- CALL Artma
- CASE 72
- CALL Eksilme
- CASE 27
- EXIT DO
- CASE 13
- CALL Artma
- END SELECT
- LOOP
- FOR I = 1 TO 5
- Sec$(I) = RTRIM$(Sec$(I))
- IF RIGHT$(Sec$(I), 1) <> "\" THEN Sec$(I) = Sec$(I) + "\"
- Dizin$(I) = Sec$(I)
- NEXT
- CALL DizinAc
- CALL ConfigYaz
- END SUB
-
- SUB DosyaAc
- CLOSE #6
- OPEN "R", #6, DosyaAd$, DosyaBoy
- FIELD #6, DosyaBoy AS Veri$
- END SUB
-
- SUB DosyaAl
- CALL ProtokolSec
- IF Tus$ = "" THEN EXIT SUB
- A$ = MID$(Sec1$(Yatay - MenuYatay), 17, 12)
- B$ = MID$(Sec1$(Yatay - MenuYatay), 29, 30)
- CALL AlmaDizinineGec
- SHELL Dizin$(4) + A$ + B$
- CHDIR ".."
- END SUB
-
- SUB DosyaGonder
- CALL ProtokolSec
- IF Tus$ = "" THEN EXIT SUB
- A$ = MID$(Sec1$(Yatay - MenuYatay), 17, 12)
- B$ = MID$(Sec1$(Yatay - MenuYatay), 59, 30) + " "
- GelGid$ = Dizin$(4) + A$ + B$
- LOCATE , , 0
- CALL DosyaOgren
- END SUB
-
- SUB DosyaOgren
- Q$ = Dizin$(3)
- Dosya:
- GOSUB Tara
- PCOPY 3, 0
- Sec$(0) = "[ Yardìm ]"
- MenuYatay = 5
- MenuDikey = 38
- MenuGenis = 25
- MenuYuksek = 5
- Cer$ = ""
- CALL CerceveCiz
- Sec$(0) = ""
- MenuYatay = 1
- MenuDikey = 2
- MenuGenis = LEN(Q$) + 14
- MenuYuksek = 2
- CALL CerceveCiz
- COLOR Renk(1), Renk(2)
- LOCATE 2, MenuDikey + 1
- PRINT "Aktif Dizin = "; Q$
- LOCATE 6, 39: PRINT "Esc...... Vazgeç"
- LOCATE 7, 39: PRINT "Enter.... Dosya Gönder"
- LOCATE 8, 39: PRINT "Del...... Dosya Sil"
- LOCATE 9, 39: PRINT "Space.... Dosya ÿƒaretle"
- Sec$(0) = "[ Dosya Gönderme ]"
- MenuYatay = 5
- MenuDikey = 9
- MenuGenis = 23
- H = 17
- IF E < H THEN H = E
- MenuYuksek = H + 1
- CALL CerceveCiz
- Cer$ = "Esc)Vazgeç"
- GOSUB Ekranyaz
- V = 1
- DO
- Konum:
- V3 = V + V2
- COLOR Renk(5), Renk(6)
- GOSUB GenelYaz
- DO: A$ = INKEY$: LOOP UNTIL A$ <> ""
- COLOR Renk(1), Renk(2)
- GOSUB GenelYaz
- IF LEN(A$) = 2 THEN
- Z = ASC(RIGHT$(A$, 1))
- SELECT CASE Z
- CASE 80
- IF V < H THEN V = V + 1 ELSE IF V2 < E - H THEN V2 = V2 + 1: GOSUB Ekranyaz
- CASE 72
- IF V > 1 THEN V = V - 1 ELSE IF V2 > 0 THEN V2 = V2 - 1: GOSUB Ekranyaz
- CASE 83
- S = 0
- FOR I = 1 TO E
- IF MID$(Sec$(I), 1, 1) = "√" THEN V4 = I: GOSUB Sil
- NEXT
- IF S = 0 AND INSTR(Sec$(V3), "Dizin") = 0 THEN V4 = V3: GOSUB Sil
- IF S = 1 GOTO Dosya
- END SELECT
- ELSE
- Z = ASC(A$)
- SELECT CASE Z
- CASE 27
- EXIT SUB
- CASE 13
- IF INSTR(Sec$(V3), "Dizin") = 0 THEN
- S = 0
- FOR I = 1 TO E
- IF MID$(Sec$(I), 1, 1) = "√" THEN
- V4 = I: GOSUB DosyaGonder
- S = 1
- END IF
- NEXT
- IF S = 0 THEN
- V4 = V3: GOSUB DosyaGonder
- END IF
- EXIT SUB
- ELSE
- IF INSTR(Sec$(V3), "Önceki") = 0 THEN
- Q$ = Q$ + RTRIM$(MID$(Sec$(V3), 2, 12)) + "\"
- ELSE
- S = 0
- FOR I = LEN(Q$) TO 1 STEP -1
- IF MID$(Q$, I, 1) = "\" THEN
- IF S = 0 THEN S = 1 ELSE EXIT FOR
- END IF
- Q$ = LEFT$(Q$, I - 1)
- NEXT
- END IF
- GOTO Dosya
- END IF
- CASE 32
- IF INSTR(Sec$(V3), "Dizin") = 0 THEN
- IF MID$(Sec$(V3), 1, 1) = "√" THEN MID$(Sec$(V3), 1, 1) = " " ELSE MID$(Sec$(V3), 1, 1) = "√"
- GOSUB GenelYaz
- END IF
- IF V < H THEN V = V + 1 ELSE IF V2 < E - H THEN V2 = V2 + 1: GOSUB Ekranyaz
- END SELECT
- END IF
- LOOP
- Ekranyaz:
- COLOR Renk(1), Renk(2)
- FOR I = 1 TO H
- LOCATE MenuYatay + I, MenuDikey + 1
- PRINT LEFT$(Sec$(V2 + I) + SPACE$(23), 23)
- NEXT
- RETURN
-
- GenelYaz:
- LOCATE MenuYatay + V, MenuDikey + 1
- PRINT Sec$(V3)
- RETURN
-
- Tara:
- V2 = 0
- LOCATE , , 0
- D$ = "H GGG.D$D"
- F$ = "DIR " + Q$ + "*.*/OG/B >" + D$
- SHELL F$
- DosyaAd$ = D$
- DosyaBoy = 1
- CALL DosyaAc
- S = INSTR(Q$, "\")
- S1 = INSTR(S + 1, Q$, "\")
- E = 0
- FOR I = 1 TO Kapasite
- Sec$(I) = ""
- NEXT
- IF S1 > 0 THEN E = 1: Sec$(1) = " Önceki Dizin "
- FOR I = 1 TO LOF(6)
- GET #6, I
- IF ASC(Veri$) = 13 THEN
- E = E + 1
- IF E > Kapasite THEN E = Kapasite: EXIT FOR
- Sec$(E) = G$
- Hata = 4
- GOSUB Ogren
- Sec$(E) = " " + LEFT$(Sec$(E) + SPACE$(23), 22)
- IF Hata = 4 THEN H$ = STR$(LOF(5)): H = LEN(H$): MID$(Sec$(E), 23 - H, H) = H$
- IF Hata = 5 THEN MID$(Sec$(E), 16, 7) = "<Dizin>"
- IF INSTR(G$, D$) > 0 THEN E = E - 1
- CLOSE #5
- Hata = 0
- G$ = ""
- I = I + 1
- ELSE
- G$ = G$ + Veri$
- END IF
- NEXT
- CLOSE #6
- KILL D$
- RETURN
- Ogren:
- CLOSE #5
- OPEN "R", #5, Q$ + Sec$(E), 1
- IF Hata = 4 THEN FIELD #5, 1 AS V$
- RETURN
- Sil:
- Dos$ = RTRIM$(MID$(Sec$(V4), 2, 12))
- Mesaj$ = "2" + Dos$ + " isimli dosyayì sileyim mi? E)vet H)ayìr"
- CALL MesajYaz
- IF INSTR("Ee", Tercih$) > 0 THEN
- KILL Q$ + Dos$
- S = 1
- END IF
- RETURN
- DosyaGonder:
- Dos$ = Q$ + RTRIM$(MID$(Sec$(V4), 2, 12))
- S = 1
- COLOR 7, 1
- CLS
- SHELL GelGid$ + Dos$
- RETURN
- END SUB
-
- SUB EkranAc
- CLOSE #2
- Ek$ = "SCRN:"
- IF Ekran$ = "ANSI" THEN Ek$ = "CON"
- OPEN Ek$ FOR OUTPUT AS #2
- END SUB
-
- SUB EkranAdresiBul
- EkranAdresi = &HB800
- DEF SEG = 0
- IF PEEK(&H449) = 7 THEN EkranAdresi = &HB000
- END SUB
-
- SUB EkranKoy
- PCOPY 1, 0
- LOCATE , , 1
- IF Ek$ = "CON" THEN
- PRINT #2, CHR$(27); "[u";
- ELSE
- LOCATE Satir, Sutun
- END IF
- END SUB
-
- SUB EkranSakla
- PCOPY 0, 1
- IF Ek$ = "CON" THEN
- PRINT #2, CHR$(27); "[s";
- ELSE
- Satir = CSRLIN
- Sutun = POS(0)
- END IF
- LOCATE , , 0
- END SUB
-
- SUB EkranSec
- Sec1$(0) = Ekran$
- Sec$(1) = CHR$(2) + " TTY "
- Sec$(2) = CHR$(2) + " ANSI "
- MenuYatay = 9
- MenuDikey = 55
- MenuGenis = 6
- MenuYuksek = 3
- MenuSecim$ = "TA"
- CALL HareketliMenu
- IF Tus$ <> "" THEN Ekran$ = MID$(Sec$(Yatay - MenuYatay), 3, 4)
- END SUB
-
- SUB EkranUstuYaz
- IF RR <> FIX(TIMER * 10) THEN
- IF Ek$ = "CON" THEN
- PRINT #2, CHR$(27); "[s";
- GOSUB EkranUstuOrtak
- PRINT #2, CHR$(27); "[u";
- ELSE
- Satir = CSRLIN
- Sutun = POS(0)
- GOSUB EkranUstuOrtak
- LOCATE Satir, Sutun
- END IF
- END IF
- EXIT SUB
- EkranUstuOrtak:
- COLOR Renk(9), Renk(10)
- RR = FIX(TIMER * 10)
- LOCATE , , 0
- Yaz$ = " Alt+Z Yardìm │ Türkçe ÿletiƒim Programì │ " + PortNo$ + ": │ " + Ekran$ + " │ Saat=" + TIME$ + " "
- MID$(Yaz$, 49, 6) = LTRIM$(Baud$)
- LOCATE 1, 1
- PRINT Yaz$;
- LOCATE , , 1, 6, 7
- COLOR Renk(2), Renk(1)
- RETURN
- END SUB
-
- SUB Eksilme
- VeriAlYatay = VeriAlYatay - 1
- IF VeriAlYatay = MenuYatay THEN VeriAlYatay = MenuYatay + MenuYuksek - 1
- END SUB
-
- SUB Eksilme2
- VeriAlYatay = VeriAlYatay - 1
- IF VeriAlYatay = MenuYatay + 1 THEN VeriAlYatay = MenuYatay + MenuYuksek - 1
- END SUB
-
- SUB Elveda
- Cer$ = ""
- Sec$(0) = "[ Türkçe iletiƒim Programì Ver-1.0 Beta]"
- PCOPY 3, 0
- MenuYatay = 2
- MenuDikey = 2
- MenuGenis = 74
- MenuYuksek = 8
- CALL CerceveCiz
- COLOR 7, 1
- FOR I = 13 TO 25: LOCATE I, 1: PRINT SPACE$(80); : NEXT
- COLOR Renk(1), Renk(2)
- LOCATE 3, 3
- PRINT "Yapìm : Gürol DEMÿR, Aºustos 1995, E-Mail:Gurold@doruk.com.tr"
- LOCATE 5, 3
- PRINT "Katkìda bulunanlar : Doruk BBS program-f üyelerinden; Nihat, Ziya, Ferhat,"
- LOCATE 6, 24
- PRINT "Suat, Hüseyin, Bora, Koray, Savaƒ, Buyar ve ÿsmail"
- LOCATE 8, 3
- PRINT "Özel teƒekkürler : Irq konusundaki yardìmlarì için sayìn Recep Tezkol'a"
- LOCATE 9, 24
- PRINT "Planlama için sevgili dostum M.Doºan Özdemir'e"
-
- LOCATE 12, 1
- END SUB
-
- SUB HareketliMenu
- LOCATE , , 0
- CALL CerceveCiz
- A = 1: Bul = 0
- FOR I = 1 TO MenuYuksek - 1
- IF INSTR(Sec$(I), Sec1$(0)) > 0 AND Bul = 0 THEN A = I: Bul = 1
- Yata = MenuYatay + I: G = I
- RenkA = Renk(1): RenkB = Renk(2)
- GOSUB Yaz
- NEXT
-
- Yatay = MenuYatay + A
-
- DO
- G = Yatay - MenuYatay
- Yata = Yatay: RenkA = Renk(5): RenkB = Renk(6): GOSUB Yaz
-
- DO: Tus$ = INKEY$: LOOP UNTIL Tus$ <> ""
-
- RenkA = Renk(1): RenkB = Renk(2): GOSUB Yaz
-
- IF LEN(Tus$) = 2 THEN
- Z = ASC(RIGHT$(Tus$, 1))
- SELECT CASE Z
- CASE 80
- Yatay = Yatay + 1: IF Yatay = MenuYatay + MenuYuksek THEN Yatay = MenuYatay + 1
- CASE 72
- Yatay = Yatay - 1: IF Yatay = MenuYatay THEN Yatay = MenuYatay + MenuYuksek - 1
- END SELECT
- END IF
-
- IF ASC(Tus$) = 27 THEN
- Tus$ = ""
- EXIT SUB
- END IF
-
- IF ASC(Tus$) = 13 THEN Yer = ASC(Sec$(G)) + 1: Tus$ = MID$(Sec$(G), Yer, 1)
- V = INSTR(LEFT$(Al$(1), 34), Tus$)
- IF V > 0 THEN Tus$ = MID$(Al$(0), V, 1)
- V = INSTR(MenuSecim$, Tus$)
- IF V > 0 THEN Yatay = MenuYatay + V: EXIT SUB
- LOOP
-
- Yaz:
- LOCATE Yata, MenuDikey + 1
- COLOR RenkA, RenkB
- PRINT MID$(Sec$(G), 2, LEN(Sec$(G)) - 1)
- Yer = ASC(Sec$(G)) + 1
- LOCATE Yata, MenuDikey + 1 + Yer - 2
- COLOR Renk(7)
- PRINT MID$(Sec$(G), Yer, 1)
- RETURN
-
- END SUB
-
- SUB IlkBaslama
- CALL ProtokolOku
- FOR V = 1 TO 5
- A$ = RTRIM$(MID$(Sec1$(V), 89, 30))
- Protokol$(V) = ""
- FOR I = 1 TO LEN(A$) STEP 2
- Protokol$(V) = Protokol$(V) + CHR$(VAL("&H" + MID$(A$, I, 2)))
- NEXT
- Protokol$(V) = RTRIM$(Protokol$(V))
- IF Protokol$(V) = "" THEN Protokol$(V) = "√≈G&D Amatör Programcìlìk Hastasì√≈"
- NEXT
- CALL MakroTusOku
- Ekra$ = "TTY "
-
- 'VeriTipi Açìklamasì
- '1=Alfabetik
- '2=Rakamsal
- '3=Karìƒìk
- Al$(0) = "QWERTYUIOPªÜASDFGHJKL₧ÿZXCVBNMÖÇqwertyuìopºüasdfghjklƒizxcvbnmöç"
- Al$(1) = "qwertyuìopºüasdfghjklƒizxcvbnmöçQWERTYUIOPªÜASDFGHJKL₧ÿZXCVBNMÖÇ -/.!'^+%&/()=?_;*\,:"
- Al$(2) = "1234567890-/. "
- Al$(3) = Al$(1) + Al$(2) + "═"
- Al$(4) = "0123456789ACBDEFabcdef"
- Renk(1) = 1: 'Normal yazì
- Renk(2) = 7
- Renk(3) = 14: 'Menü adì
- Renk(4) = 3
- Renk(5) = 7: 'Aktif Satìr
- Renk(6) = 1
- Renk(7) = 15: 'Menü seçim rengi
- Renk(8) = 4
- Renk(9) = 4: 'Veri Rengi
- Renk(10) = 7
-
- CALL AnsiyeBak
- CALL EkranAdresiBul
- CALL ArkaPlanCiz
- Cer$ = "Esc)Tamam"
- CALL ConfigOku
- CALL Terminal
- END SUB
-
- SUB Ilkkurulma
- CALL ConfigOku
- CALL Kullanan
- CALL Dizinler
- CALL ModemBul
- CALL Modemsetup
- CALL ConfigYaz
- END SUB
-
- SUB IrqSec
- Sec1$(0) = IRQ$
- Sec$(1) = CHR$(5) + " IRQ3 "
- Sec$(2) = CHR$(5) + " IRQ4 "
- Sec$(3) = CHR$(5) + " IRQ5 "
- Sec$(4) = CHR$(5) + " IRQ7 "
- MenuYatay = 8
- MenuDikey = 55
- MenuGenis = 6
- MenuYuksek = 5
- MenuSecim$ = "3457"
- CALL HareketliMenu
- IF Tus$ <> "" THEN IRQ$ = MID$(Sec$(Yatay - MenuYatay), 3, 4)
- END SUB
-
- SUB Kullanan
- PCOPY 3, 0
- MenuYatay = 10
- MenuDikey = 15
- MenuGenis = 49
- MenuYuksek = 3
- Sec$(0) = "[ Yeni Kurulum ]"
- CALL CerceveCiz
- CALL ConfigOku
- Sec1$(1) = "Adìnìz Soyadìnìz"
- Sec1$(2) = "Telefon Numaranìz"
- Sec$(1) = Kim$
- Sec$(2) = Tel$
- FOR I = 1 TO 2
- COLOR Renk(1), Renk(2)
- LOCATE MenuYatay + I, MenuDikey + 2
- PRINT Sec1$(I); " ";
- COLOR Renk(9), Renk(10)
- PRINT Sec$(I)
- NEXT
- VeriAlYatay = MenuYatay + 1
-
- DO
- V = VeriAlYatay - MenuYatay
- VeriTipi = V
- VerialBoy = LEN(Sec$(V))
- VerialDikey = MenuDikey + LEN(Sec1$(V)) + 3
- Verial$ = Sec$(V)
- CALL Verialma
- LOCATE VeriAlYatay, VerialDikey
- COLOR Renk(9), Renk(10)
- PRINT Verial$
- Sec$(V) = Verial$
-
- SELECT CASE Z
- CASE 80
- CALL Artma
- CASE 72
- CALL Eksilme
- CASE 27
- EXIT DO
- CASE 13
- CALL Artma
- END SELECT
- LOOP
- Kim$ = Sec$(1)
- Tel$ = Sec$(2)
- CALL ConfigYaz
- END SUB
-
- SUB Kurulumlar
- PCOPY 3, 0
- Sec$(0) = "[ Ayarlar ]"
- Sec$(1) = CHR$(2) + " Dÿzin Deºiƒtirme "
- Sec$(2) = CHR$(2) + " Terminal Bilgileri Giriƒi "
- Sec$(3) = CHR$(2) + " Renk Ayarlarì "
- Sec$(4) = CHR$(2) + " Protokol Bilgileri Giriƒi "
- Sec$(5) = CHR$(2) + " Makro Tuƒ Tanìmlarì "
- MenuYatay = 9
- MenuDikey = 20
- MenuGenis = 34
- MenuYuksek = 6
- MenuSecim$ = "DTRPM"
- CALL HareketliMenu
- SELECT CASE Tus$
- CASE "D"
- CALL Dizinler
- CALL Kurulumlar
- CASE "T"
- IF Gid$(9) <> "1" THEN CALL ModemKapa
- CALL Modemsetup
- CALL ConfigYaz
- Gid$(9) = "1"
- CALL Kurulumlar
- CASE "R"
- CALL RenkAyar
- CALL Kurulumlar
- CASE "M"
- CALL MakroTus
- CALL Kurulumlar
- CASE "P"
- CALL ProtokolDefteri
- CALL Kurulumlar
- END SELECT
- CALL ConfigYaz
- END SUB
-
- SUB MakroTus
- PCOPY 3, 0
- Sec$(0) = "[ Makro Tuƒ Takìmlarì ]"
- MenuYatay = 5
- MenuDikey = 11
- MenuGenis = 59
- MenuYuksek = 15
- Cer$ = "PgDn/PgUp)Diºer Sayfa═══Esc)Tamam"
- CALL CerceveCiz
- Cer$ = "Esc)Tamam"
- LOCATE MenuYatay + 1, MenuDikey + 2
- COLOR Renk(7), Renk(8)
- PRINT "Tuƒlar"
- LOCATE MenuYatay + 1, MenuDikey + 9
- PRINT "Bu Tuƒlara Atanan Kelime Grubu "
- VeriAlYatay = MenuYatay + 2
- VerialDikey = MenuDikey + 9
- VerialBoy = 50
- VeriTipi = 3
- CALL MakroTusOku
- V1 = 1
- GOSUB YazEkrr
-
- DO
- COLOR Renk(9), Renk(10)
- LOCATE MenuYatay, MenuDikey + MenuGenis - 5
- V = V1 * 13 - 14 + VeriAlYatay - MenuYatay
- PRINT LEFT$(Makro$(V), 1)
- Verial$ = RIGHT$(Makro$(V), 50)
- CALL Verialma
- LOCATE VeriAlYatay, VerialDikey
- COLOR Renk(9), Renk(10)
- PRINT Verial$
- MID$(Makro$(V), 2, 50) = Verial$
-
- SELECT CASE Z
- CASE 80
- CALL Artma2
- CASE 81
- IF V1 < 2 THEN V1 = V1 + 1
- GOSUB YazEkrr
- CASE 73
- IF V1 > 1 THEN V1 = V1 - 1
- GOSUB YazEkrr
- CASE 72
- CALL Eksilme2
- CASE 27
- GOSUB Yazdosyy
- EXIT DO
- CASE 13
- CALL Artma2
- END SELECT
- LOOP
- EXIT SUB
-
- YazEkrr:
- COLOR Renk(9), Renk(10)
- V2 = V1 * 13 - 12
- FOR I = 1 TO 13
- T = V2 + I - 1
- LOCATE MenuYatay + I + 1, MenuDikey + 2
- PRINT "Ctrl+"; LEFT$(Makro$(T), 1); " "; RIGHT$(Makro$(T), 50)
- NEXT
- RETURN
-
- Yazdosyy:
- CLOSE #6
- KILL DosyaAd$
- CALL DosyaAc
- FOR I = 1 TO 26
- LSET Veri$ = Makro$(I)
- PUT #6, I
- NEXT
- RETURN
-
- END SUB
-
- SUB MakroTusOku
- DosyaAd$ = "MODEM.MKR"
- DosyaBoy = 51
- CALL DosyaAc
- M$ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- FOR I = 1 TO 26
- GET #6, I
- Makro$(I) = MID$(M$, I, 1) + SPACE$(50)
- IF MID$(Veri$, 1, 1) = MID$(M$, I, 1) THEN Makro$(I) = Veri$
- NEXT
- END SUB
-
- SUB MesajYaz
- PCOPY 0, 2
- LOCATE , , 0
- M1 = 13
- M3 = LEN(Mesaj$) + 1
- M2 = FIX((80 - M3) / 2)
- M4 = 2
- COLOR Renk(1), Renk(2)
- FOR I = 1 TO M4 - 1
- LOCATE M1 + I, M2
- PRINT "║"; STRING$(M3, " "); "║"
- NEXT
- LOCATE M1, M2
- PRINT "╔"; STRING$(M3, "═"); "╗"
- LOCATE M1 + M4, M2
- PRINT "╚"; STRING$(M3, "═"); "╝";
- DEF SEG = EkranAdresi
- FOR I = 1 TO M3 + 1
- A = ((M1 + M4) * 160 - 1 + (M2 + I) * 2 + 1)
- POKE A + 1, 9
- NEXT
- FOR I = 1 TO M4 + 1
- TR = ((M1 + I - 1) * 160 + (M2 + M3 + 1) * 2 + 1)
- POKE TR, 9: POKE TR + 2, 9
- NEXT
- DEF SEG
- DO
- LOCATE 14, M2 + 2: PRINT RIGHT$(Mesaj$, M3 - 2)
- PLAY Muzik$ + "P64"
- IF ASC(Mesaj$) < 34 THEN EXIT DO
- DO: Tercih$ = INKEY$: LOOP UNTIL Tercih$ <> ""
- IF ASC(Mesaj$) = 49 THEN EXIT DO
- SELECT CASE Tercih$
- CASE "E", "e"
- EXIT DO
- CASE "H", "h", CHR$(27)
- EXIT DO
- END SELECT
- LOOP
- IF ASC(Mesaj$) <> 33 THEN PCOPY 2, 0
- END SUB
-
- SUB MesajYazTerminal
- CALL EkranSakla
- CALL MesajYaz
- CALL EkranKoy
- END SUB
-
- SUB ModemAc
- Ekran = 0
- IF Tutanak$ = "Açìk " THEN
- Isim = 0
- YeniTutanak:
- Isim = Isim + 1
- DosyaAdi$ = Dizin$(5) + "MODEM" + LTRIM$(STR$(Isim)) + ".CAP"
- DosyaBoyu = 1
- CALL TutanakAc
- IF LOF(7) <> 0 THEN GOTO YeniTutanak
- END IF
-
- DEF SEG = 0
-
- FOR I = 40 TO 63: 'ÿnterrupt adresleri
- Sakla(I - 40) = PEEK(I)
- NEXT
-
- Sakla(24) = INP(&H21) 'PIC deºerleri
- Sakla(25) = INP(&HA1)
-
- Sakla(26) = PEEK(1026) 'Com2 adresi
- Sakla(27) = PEEK(1027)
-
- Sakla = INP(Port + 3)
- OUT Port + 3, 128
- Sakla(28) = INP(Port)
- OUT Port + 3, Sakla
-
- POKE 1027, FIX(Port / 256)
- POKE 1026, Port - PEEK(1027) * 256
-
- CLOSE #1
- OPEN "Com2:2400,N,8,1" FOR RANDOM AS #1
-
- OUT &H21, Sakla(24) 'PIC deºerleri
- OUT &HA1, Sakla(25)
-
- Sakla = INP(Port + 3)
- OUT Port + 3, 128
- OUT Port, 115200 / VAL(Baud$)
- OUT Port + 3, Sakla
-
- IRQ = VAL(MID$(IRQ$, 4, 1))
-
- IntAdres = (IRQ + 8) * 4
- POKE IntAdres, PEEK(44)
- POKE IntAdres + 1, PEEK(45)
- POKE IntAdres + 2, PEEK(46)
- POKE IntAdres + 3, PEEK(47)
-
- RESTORE IRQSerbest
- REDIM Oku(44)
- DEF SEG = VARSEG(Oku(0))
-
- FOR PicMask = 0 TO 44
- READ D%
- IF PicMask = 13 THEN D% = IRQ
- POKE VARPTR(Oku(0)) + PicMask, D%
- NEXT PicMask
-
- CALL absolute(VARPTR(Oku(0)))
- END SUB
-
- SUB ModemBul
- LOCATE , , 0
- PCOPY 3, 0
- Baud$ = "0"
- Sec$(0) = " Modem Arama "
- Cer$ = ""
- MenuYatay = 3
- MenuDikey = 5
- MenuGenis = 68
- MenuYuksek = 10
- CALL CerceveCiz
- Cer$ = "Esc)Tamam"
-
- COLOR Renk(9), Renk(2)
- LOCATE MenuYatay + 1, MenuDikey + 1
- PRINT "C.No Adresi IRQ No Yapìlan iƒlem ve sonuç Fabrika Hìzì Önerilen Hìz"
-
- DEF SEG = 0
- FOR I = 40 TO 63
- Sakla(I - 40) = PEEK(I)
- NEXT
- Sakla(25) = INP(&H21)
- Sakla(26) = INP(&HA1)
-
- FOR Y = 2 TO 7
- IF Y <> 6 THEN
- DEF SEG = &HB900
- RESTORE YeniKesme
- B = (Y - 2) * 20 + 11
-
- FOR I = B TO B + 17
- READ A
- POKE I, A
- NEXT
-
- POKE B + 9, Y
- DEF SEG = 0
- C = 32 + Y * 4
- POKE C, B
- POKE C + 1, 0
- POKE C + 2, 0
- POKE C + 3, &HB9
- END IF
- NEXT
-
- FOR Y1 = 2 TO 7
- IF Y1 <> 6 THEN
- RESTORE IRQSerbest
- REDIM Oku(44)
- DEF SEG = VARSEG(Oku(0))
-
- FOR PicMask = 0 TO 44
- READ D%
- IF PicMask = 13 THEN D% = Y1
- POKE VARPTR(Oku(0)) + PicMask, D%
- NEXT PicMask
-
- CALL absolute(VARPTR(Oku(0)))
- END IF
- NEXT
-
- COLOR Renk(1), Renk(2)
- Bekle = 5
-
- A$ = "103F8202F8303E8402E854220642287522085228"
-
- FOR I = 1 TO 40 STEP 5
- Port$ = MID$(A$, I, 5)
- LOCATE MenuYatay + I / 5 + 2, MenuDikey + 1
- PRINT "Com"; LEFT$(Port$, 1); " "; RIGHT$(Port$, 4); " ??"
- NEXT
-
- Ekran$ = Ekra$
-
- FOR I = 1 TO 40 STEP 5
- DEF SEG = &HB900
- FOR Y = 2 TO 9
- POKE Y, 0
- NEXT
-
- Port$ = MID$(A$, I + 1, 4)
- Port = VAL("&H" + Port$)
- LOCATE MenuYatay + VAL(MID$(A$, I, 1)) + 1, MenuDikey + 20
- PRINT "Bakìyorum"
- LOCATE MenuYatay + VAL(MID$(A$, I, 1)) + 1, MenuDikey + 20
-
-
- IF INP(Port + 1) <> 255 THEN
- A = INP(Port + 3)
- OUT Port + 3, 128
- OUT Port, 115200 / 14400
- OUT Port + 3, A
-
- OUT Port + 1, 3
- OUT Port + 4, 11
-
- FOR S = 1 TO 2
- B$ = "ATZ" + CHR$(13)
- GOSUB Yolla
- NEXT
-
- DEF SEG = &HB900
- FOR Y = 2 TO 9
- IF PEEK(Y) <> 0 THEN
- LOCATE MenuYatay + VAL(MID$(A$, I, 1)) + 1, MenuDikey + 13
- PRINT "Irq="; Y
- Y1 = Y
- LOCATE MenuYatay + VAL(MID$(A$, I, 1)) + 1, MenuDikey + 20
- END IF
- NEXT
-
- GOSUB Gelen
- IF INSTR(B$, "OK") = 0 THEN
- PRINT "Baƒka bir aygìt var !"
- ELSE
- IRQ$ = "IRQ" + LTRIM$(STR$(Y1))
- PortNo$ = "Com" + MID$(A$, I, 1)
- Adres$ = "$" + Port$
- PRINT "*Bir modem bulundu...* ";
- B$ = "ATI" + CHR$(13)
- GOSUB Yolla
- GOSUB Gelen
- IF INSTR(B$, "14400") > 1 THEN Baud$ = "14400 Bps"
- IF INSTR(B$, "2400") > 1 THEN Baud$ = "2400 Bps"
- IF INSTR(B$, "28000") > 1 THEN Baud$ = "28800 Bps"
- IF INSTR(B$, "ERROR") > 1 THEN Baud$ = "Öºrenilemedi!"
- PRINT Baud$; SPACE$(14 - LEN(Baud$));
- Baud$ = LTRIM$(STR$(VAL(Baud$) * 4))
- IF VAL(Baud$) = 0 THEN Baud$ = "14400"
- PRINT Baud$; " Bps"
- END IF
-
- OUT Port + 1, 0
- OUT Port + 4, 0
- ELSE
- PRINT "Hiç aygìt yok !!!"
- END IF
- NEXT
-
- DEF SEG = 0
- FOR I = 40 TO 63
- POKE I, Sakla(I - 40)
- NEXT
- OUT &H21, Sakla(25)
- OUT &HA1, Sakla(26)
-
- LOCATE MenuYatay + 10, MenuDikey + 45
- PRINT "Bir tuƒa basìnìz"
- DO: LOOP UNTIL INKEY$ <> ""
- EXIT SUB
-
- Yolla:
- FOR J = 1 TO LEN(B$)
- A = ASC(MID$(B$, J, 1))
- DO
- IF (INP(Port + 5) AND 32) = 32 THEN
- OUT Port, A
- EXIT DO
- END IF
- LOOP
- NEXT
- RETURN
-
- Gelen:
- B = FIX(TIMER)
- B$ = ""
- DO
- IF (INP(Port + 5) AND 1) = 1 THEN
- B$ = B$ + CHR$(INP(Port))
- END IF
- IF FIX(TIMER) - B >= Bekle THEN EXIT DO
- IF INSTR(B$, "OK") > 0 THEN EXIT DO
- LOOP
- RETURN
- END SUB
-
- SUB ModemHangUp
- A$ = CHR$(13)
- Gid$(0) = CHR$(27) + A$ + "~~~+++~~~" + A$ + "ATH" + A$ + "ATZ" + A$
- CALL TerminalGidenler
- END SUB
-
- SUB ModemKapa
- Ekran = 1
- CALL ModemHangUp
- OUT Port + 4, (INP(Port + 4) AND 252)
- CLOSE #1
-
- Sakla = INP(Port + 3)
- OUT Port + 3, 128
- OUT Port, Sakla(28)
- OUT Port + 3, Sakla
-
- DEF SEG = 0
-
- FOR I = 40 TO 63: 'ÿnterrupt adresleri
- POKE I, Sakla(I - 40)
- NEXT
-
- OUT &H21, Sakla(24) 'PIC deºerleri
- OUT &HA1, Sakla(25)
-
- POKE 1026, Sakla(26) 'Com2 adresi
- POKE 1027, Sakla(27)
-
- END SUB
-
- SUB Modemsetup
- Yty = 6
- Setup:
- PCOPY 3, 0
- Sec$(0) = ""
- MenuYatay = 21
- MenuDikey = 51
- MenuGenis = 22
- MenuYuksek = 2
- Cer$ = ""
- CALL CerceveCiz
- Cer$ = "Esc)Tamam"
- COLOR Renk(1), Renk(2)
- LOCATE 22, 53
- PRINT "F6) Otomatik Kurulum"
- Sec$(0) = "[ Modem Ayarlarì ]"
- Sec$(1) = CHR$(21) + " Modemin Kullandìºì IRQ: " + IRQ$
- Sec$(2) = CHR$(2) + " ÿletiƒim Hìzì:" + Baud$
- Sec$(3) = CHR$(2) + " Modem Adresi: " + Adres$
- Sec$(4) = CHR$(2) + " Port No:" + PortNo$
- Sec$(5) = CHR$(2) + " Ekran Emülasyonu: " + Ekran$
- Sec$(6) = CHR$(2) + " Katar: " + Katar$
- Sec$(7) = CHR$(2) + " Açìlìƒ Koƒullamasì: " + Kosul$
- Sec$(8) = CHR$(11) + " Otomatik Cevaplama: " + Cevap$
- Sec$(9) = CHR$(2) + " Local Echo: " + Echo$
- Sec$(10) = CHR$(2) + " Ses: " + Ses$
- Sec$(11) = CHR$(2) + " Görüƒme Tutanaklarì: " + Tutanak$
- MenuYatay = 5
- MenuDikey = 8
- MenuGenis = 59
- MenuYuksek = 12
- MenuSecim$ = "IÿMPEKACLSG" + CHR$(242)
- Sec1$(0) = Sec$(Yty - MenuYatay)
- CALL HareketliMenu
- Cer$ = ""
- Sec$(0) = ""
- Yty = Yatay
- IF Yty < 18 THEN Yty = Yty + 1 ELSE Yty = 6
- SELECT CASE Tus$
- CASE "I"
- CALL IrqSec
- GOTO Setup
- CASE "ÿ"
- CALL BaudSec
- GOTO Setup
- CASE "M"
- CALL AdresSec
- GOTO Setup
- CASE "P"
- CALL PortSec
- GOTO Setup
- CASE "E"
- CALL EkranSec
- GOTO Setup
- CASE "A"
- Sec1$(0) = Kosul$
- CALL Secim
- IF Tus$ <> "" THEN Kosul$ = MID$(Sec$(Yatay - MenuYatay), 3, 6)
- GOTO Setup
- CASE "C"
- Sec1$(0) = Cevap$
- CALL Secim
- IF Tus$ <> "" THEN Cevap$ = MID$(Sec$(Yatay - MenuYatay), 3, 6)
- GOTO Setup
- CASE "L"
- Sec1$(0) = Echo$
- CALL Secim
- IF Tus$ <> "" THEN Echo$ = MID$(Sec$(Yatay - MenuYatay), 3, 6)
- GOTO Setup
- CASE "S"
- Sec1$(0) = Ses$
- CALL Secim
- IF Tus$ <> "" THEN Ses$ = MID$(Sec$(Yatay - MenuYatay), 3, 6)
- GOTO Setup
- CASE "G"
- Sec1$(0) = Tutanak$
- CALL Secim
- IF Tus$ <> "" THEN Tutanak$ = MID$(Sec$(Yatay - MenuYatay), 3, 6)
- GOTO Setup
- CASE "K"
- VerialDikey = 17
- VeriAlYatay = 11
- VerialBoy = 50
- Verial$ = Katar$
- VeriTipi = 3
- CALL Verialma
- Katar$ = Verial$
- GOTO Setup
- CASE CHR$(242)
- CALL ModemBul
- Yty = 8
- GOTO Setup
- CASE ELSE
- Cer$ = "Esc)Tamam"
- EXIT SUB
- END SELECT
- END SUB
-
- SUB OtomatikSec
- Sec$(0) = "[ Otomatik ÿƒlemler]"
- Sec1$(0) = Oto$
- Sec$(1) = CHR$(2) + " Otomatik iƒlem iptal "
- Sec$(2) = CHR$(2) + " ÿsim + ₧ifre "
- Sec$(3) = CHR$(3) + " ÿsim + E + ₧ifre "
- Sec$(4) = CHR$(5) + " ÿsim + Y + ₧ifre "
- Sec$(5) = CHR$(21) + " Esc + Esc + ÿsim + Y + ₧ifre "
- Sec$(6) = CHR$(21) + " Esc + Esc + ÿsim + E + ₧ifre "
- MenuYatay = 12
- MenuDikey = 30
- MenuGenis = 30
- MenuYuksek = 7
- MenuSecim$ = "OÿSMYE"
- CALL HareketliMenu
- IF Tus$ <> "" THEN Oto$ = MID$(Sec$(Yatay - MenuYatay), 2, 40)
- END SUB
-
- SUB Pencere
- CALL EkranSakla
- PCOPY 3, 0
- Sec$(0) = "[ Yardìm ]"
- MenuYatay = 8
- MenuDikey = 8
- MenuGenis = 64
- MenuYuksek = 8
- CALL CerceveCiz
- COLOR Renk(7), Renk(2)
- A$ = CHR$(16)
- LOCATE 9, 9: PRINT "Alt-A Ayarlamalar"
- LOCATE 9, 45: PRINT "Alt-C Ekranì Sil"
- LOCATE 10, 45: PRINT "Alt-Z Yardìm"
- LOCATE 11, 45: PRINT "Alt-B Chat Modu"
- LOCATE 15, 9: PRINT "Alt-T Telefon Defteri"
- LOCATE 12, 9: PRINT "Alt-E Echo Aç/Kapa "; A$; Echo$
- LOCATE 10, 9: PRINT "Alt-K Baºlantìnìn Kesilmesi"
- LOCATE 11, 9: PRINT "Alt-D Dos Shell"
- LOCATE 13, 9: PRINT "Alt-S Ses Aç/Kapa "; A$; Ses$
- LOCATE 14, 9: PRINT "Alt-O Otomatik Cevap Verme "; A$; Cevap$
- LOCATE 12, 45: PRINT "Alt-X Çìkìƒ"
- LOCATE 14, 45: PRINT "<PgUp> Dosya Gönderme"
- LOCATE 15, 45: PRINT "<PgDn> Dosya Alma"
- DO: A$ = INKEY$: LOOP UNTIL A$ <> ""
- IF LEN(A$) = 2 THEN Z = ASC(RIGHT$(A$, 1))
- CALL EkranKoy
- END SUB
-
- SUB PortSec
- Sec$(0) = ""
- Sec1$(0) = PortNo$
- FOR I = 1 TO 8
- Sec$(I) = CHR$(5) + " Com" + LTRIM$(STR$(I)) + " "
- NEXT
- MenuYatay = 6
- MenuDikey = 55
- MenuGenis = 6
- MenuYuksek = 9
- MenuSecim$ = "12345678"
- CALL HareketliMenu
- PortNo$ = MID$(Sec$(Yatay - MenuYatay), 3, 4)
-
- END SUB
-
- SUB ProtokolDefteri
- Protol:
- CALL ProtokolSec
- IF Tus$ = "" THEN EXIT SUB
- PCOPY 3, 0
- Yatay = Yatay - MenuYatay
- Sec$(1) = "Protokol ÿsmi"
- Sec$(2) = "Program Adì"
- Sec$(3) = "Alma Parametreleri"
- Sec$(4) = "Gönderme Parametreleri"
- Sec$(5) = "ÿƒareti(Hex$)"
- Sec$(0) = "[ Protokol ]"
- Eski$ = Sec1$(Yatay)
- Sec1$(1) = MID$(Eski$, 1, 16)
- Sec1$(2) = MID$(Eski$, 17, 12)
- Sec1$(3) = MID$(Eski$, 29, 30)
- Sec1$(4) = MID$(Eski$, 59, 30)
- Sec1$(5) = MID$(Eski$, 89, 30)
- MenuYatay = 8
- MenuDikey = 7
- MenuGenis = 62
- MenuYuksek = 6
- CALL CerceveCiz
- VeriAlYatay = MenuYatay + 1
- FOR I = 1 TO 5
- COLOR Renk(9), Renk(10)
- LOCATE MenuYatay + I, MenuDikey + 2
- PRINT Sec$(I)
- COLOR Renk(1), Renk(2)
- LOCATE MenuYatay + I, MenuDikey + LEN(Sec$(I)) + 3
- PRINT Sec1$(I)
- IF I = 5 THEN V = I: GOSUB HexiYaz
- NEXT
- LOCATE MenuYatay, MenuDikey + MenuGenis - 5
- PRINT Yatay
- VeriAlYatay = MenuYatay + 1
- DO
- V = VeriAlYatay - MenuYatay
- IF V = 5 THEN
- VeriTipi = 4
- GOSUB HexiYaz
- ELSE
- VeriTipi = 3
- END IF
- VerialDikey = MenuDikey + LEN(Sec$(V)) + 3
- VerialBoy = LEN(Sec1$(V))
- Verial$ = Sec1$(V)
- CALL Verialma
- COLOR Renk(1), Renk(2)
- LOCATE MenuYatay + V, MenuDikey + LEN(Sec$(V)) + 3
- PRINT Verial$
- Sec1$(V) = Verial$
- IF V = 5 THEN GOSUB HexiYaz
- SELECT CASE Z
- CASE 80
- CALL Artma
- CASE 72
- CALL Eksilme
- CASE 27
- EXIT DO
- CASE 13
- CALL Artma
- END SELECT
- LOOP
- Eski$ = SPACE$(118)
- MID$(Eski$, 1, 16) = Sec1$(1)
- MID$(Eski$, 17, 12) = Sec1$(2)
- MID$(Eski$, 29, 30) = Sec1$(3)
- MID$(Eski$, 59, 30) = Sec1$(4)
- MID$(Eski$, 89, 30) = Sec1$(5)
- LSET Veri$ = "G" + Eski$
- PUT #6, Yatay
- GOTO Protol
- HexiYaz:
- LOCATE 13, 54
- FOR I = 1 TO 30 STEP 2
- A = VAL("&H" + MID$(Sec1$(V), I, 2))
- IF A = 13 THEN A = 251
- IF A = 10 THEN A = 248
- IF A = 12 THEN A = 254
- IF A = 11 THEN A = 244
- PRINT CHR$(A);
- NEXT
- RETURN
- END SUB
-
- SUB ProtokolOku
- DosyaAd$ = "MODEM.PRT"
- DosyaBoy = 119
- CALL DosyaAc
- FOR I = 1 TO 5
- GET #6, I
- Sec1$(I) = SPACE$(119)
- IF MID$(Veri$, 1, 1) = "G" THEN Sec1$(I) = RIGHT$(Veri$, 118)
- NEXT
- END SUB
-
- SUB ProtokolSec
- CALL ProtokolOku
- PCOPY 3, 0
- COLOR Renk(1), Renk(2)
- FOR I = 1 TO 5
- Sec$(I) = CHR$(12) + " External (" + LTRIM$(STR$(I)) + ") " + LEFT$(Sec1$(I), 16)
- NEXT
- Sec1$(0) = Protokol$
- Sec$(0) = "[ Protokol ]"
- MenuYatay = 9
- MenuDikey = 5
- MenuGenis = 30
- MenuYuksek = 6
- MenuSecim$ = "12345"
- CALL HareketliMenu
- END SUB
-
- SUB RenkAyar
- DO
- PCOPY 3, 0
- Sec$(0) = "[ Renk Ayarì ]"
- Sec$(1) = CHR$(2) + " Normal Satìr Renkleri "
- Sec$(2) = CHR$(2) + " Menü Adlarì "
- Sec$(3) = CHR$(2) + " Aktif Satìr Renkleri "
- Sec$(4) = CHR$(2) + " Seçim Karakteri Rengi "
- Sec$(5) = CHR$(2) + " Veri Giriƒi Renkleri "
- MenuSecim$ = "NMASV"
- MenuYatay = 3
- MenuDikey = 3
- MenuGenis = 23
- MenuYuksek = 6
- CALL HareketliMenu
- IF Tus$ = "" THEN EXIT DO
- Yt = (Yatay - MenuYatay) * 2
- Y = Renk(Yt)
- X = Renk(Yt - 1)
- Sec1$(0) = Sec$(Yt / 2)
- Sec$(0) = "[ Renkler ]"
- MenuYatay = 8
- MenuDikey = 31
- MenuGenis = 16
- MenuYuksek = 9
- CALL CerceveCiz
- FOR J = 0 TO 7
- FOR I = 0 TO 15
- LOCATE MenuYatay + J + 1, MenuDikey + I + 1
- COLOR I, J: PRINT "X"
- NEXT
- NEXT
- DO
- LOCATE MenuYatay + Y + 1, MenuDikey + X + 1: COLOR 31, 1: PRINT "X"
- DO: W$ = INKEY$: LOOP UNTIL W$ <> ""
- LOCATE MenuYatay + Y + 1, MenuDikey + X + 1: COLOR X, Y: PRINT "X"
- Z = ASC(RIGHT$(W$, 1))
- IF Z = 27 OR Z = 13 THEN EXIT DO
- Degis = 1
- IF Z = 77 THEN X = X + 1: IF X = 16 THEN X = 0
- IF Z = 75 THEN X = X - 1: IF X = -1 THEN X = 15
- IF Z = 80 THEN Y = Y + 1: IF Y = 8 THEN Y = 0
- IF Z = 72 THEN Y = Y - 1: IF Y = -1 THEN Y = 7
- Renk(Yt) = Y
- Renk(Yt - 1) = X
- LOOP
- LOOP
- CALL ConfigYaz
- END SUB
-
- SUB Secim
- Sec$(1) = CHR$(2) + " Açìk "
- Sec$(2) = CHR$(2) + " Kapalì "
- MenuYatay = 9
- MenuDikey = 55
- MenuGenis = 8
- MenuYuksek = 3
- MenuSecim$ = "AK"
- CALL HareketliMenu
- END SUB
-
- SUB TelefonDefteri
- Makro = 0
- Oto = 0
- Tel:
- LOCATE , , 0
- PCOPY 3, 0
- Sec$(0) = "[ Telefon Defteri ]"
- MenuYatay = 2
- MenuDikey = 9
- MenuGenis = 60
- GOSUB DosyaOku
- MenuYuksek = I1 + 1
- Cer$ = "G)iriƒ══S)il══Enter)Telefonu Çevir══Esc)Çìk"
- CALL CerceveCiz
- Cer$ = "Esc)Tamam"
- COLOR Renk(1), Renk(2)
- FOR I = 1 TO I1
- V = I
- VeriAlYatay = MenuYatay + I
- GOSUB EkYaz
- NEXT
- VeriAlYatay = MenuYatay + Sontel
- DO
- V = VeriAlYatay - MenuYatay
- COLOR Renk(5), Renk(6)
- GOSUB EkYaz
- COLOR Renk(1), Renk(2)
- LOCATE MenuYatay, MenuDikey + MenuGenis - 5
- PRINT V; "═"
- DO: A$ = INKEY$: LOOP UNTIL A$ <> ""
- GOSUB EkYaz
- IF LEN(A$) = 2 THEN
- Z = ASC(RIGHT$(A$, 1))
- SELECT CASE Z
- CASE 80
- CALL Artma
- CASE 72
- CALL Eksilme
- END SELECT
- ELSE
- Z = ASC(A$)
- SELECT CASE Z
- CASE 27
- GOSUB SonYaz
- EXIT SUB
- CASE 71, 103
- GOSUB Ekle
- GOTO Tel
- CASE 13
- T$ = MID$(Sec$(V), 31, 20)
- IF T$ <> SPACE$(20) THEN
- Sontel = V
- CALL ConfigYaz
- Eski$ = Sec$(V)
- GOSUB Durum
- Sec$(0) = "[ Telefon Mesajlarì ]"
- MenuYatay = 9
- MenuDikey = 19
- MenuGenis = 40
- MenuYuksek = 4
- CALL CerceveCiz
- COLOR Renk(1), Renk(2)
- LOCATE 11, 21
- PRINT "Yapìlan iƒlem: Modem ÿnstall.."
- CALL ModemKapa
- PLAY "P2P2"
- A = 0
- CALL ModemAc
- Ekran = 4
- LOCATE 11, 21
- PRINT "Önceki Mesaj : Herƒey normal.."
- LOCATE 12, 21
- PRINT "Aranan Numara: "; T$
- DO
- A = A + 1
- IF A = 10 THEN EXIT DO
- IF A$ <> "" THEN IF ASC(A$) = 27 THEN EXIT DO
- LOCATE 10, 21
- PRINT "Aktif Mesaj : "; LTRIM$(STR$(A)); ". Defa Arìyorum"
- Gid$(0) = "ATDT" + T$ + CHR$(13)
- CALL TerminalGidenler
- DO
- A$ = INKEY$
- IF A$ <> "" THEN IF ASC(A$) = 27 THEN EXIT DO
- CALL TerminalGelenler
- LOCATE 11, 21
- IF INSTR(Gelen$, "BUSY") > 0 THEN
- Gelen$ = ""
- PRINT "Önceki Mesaj : Meƒgul Çalìyor !! "
- EXIT DO
- END IF
- IF INSTR(Gelen$, "NO DIALTONE") > 0 THEN
- Gelen$ = ""
- PRINT "Önceki Mesaj : Çevir Sesi Alìnamadì !!"
- EXIT DO
- END IF
- IF INSTR(Gelen$, "NO ANSWER") > 0 THEN
- Gelen$ = ""
- PRINT "Önceki Mesaj : Cevap Vermiyor !! "
- EXIT DO
- END IF
- IF INSTR(Gelen$, "CONNECT") > 0 THEN
- Gelen$ = ""
- Ekran = 0
- HatDolu = 1
- RR = FIX(TIMER)
- EXIT SUB
- END IF
- LOOP
- PLAY Muzik$
- LOOP
- Ekran = 0
- CALL ModemKapa
- CALL ConfigOku
- CALL ModemAc
- EXIT SUB
- END IF
- CASE 83, 115
- Sec$(V) = SPACE$(149)
- LSET Veri$ = "Z"
- PUT #6, V
- END SELECT
- END IF
- LOOP
- EkYaz:
- LOCATE VeriAlYatay, MenuDikey + 2
- PRINT LEFT$(Sec$(V), 30)
- LOCATE VeriAlYatay, MenuDikey + 33
- PRINT MID$(Sec$(V), 31, 20)
- LOCATE VeriAlYatay, MenuDikey + 54
- PRINT MID$(Sec$(V), 51, 6)
- RETURN
- DosyaOku:
- DosyaAd$ = "MODEM.TEL"
- DosyaBoy = 150
- CALL DosyaAc
- I1 = 20
- IF LOF(6) / 150 < 20 THEN I1 = LOF(6) / 150 + 1
- IF LOF(6) / 150 < Sontel THEN Sontel = 1
- FOR I = 1 TO I1
- GET #6, I
- Sec$(I) = SPACE$(149)
- IF MID$(Veri$, 1, 1) = "G" THEN Sec$(I) = RIGHT$(Veri$, 149)
- NEXT
- RETURN
- Durum:
- Sec1$(1) = MID$(Eski$, 1, 30)
- Sec1$(2) = MID$(Eski$, 31, 20)
- Sec1$(3) = MID$(Eski$, 51, 6)
- IF Sec1$(3) = SPACE$(6) THEN Sec1$(3) = Baud$ ELSE Baud$ = Sec1$(3)
- Sec1$(4) = MID$(Eski$, 57, 6)
- IF Sec1$(4) = SPACE$(6) THEN Sec1$(4) = Echo$ ELSE Echo$ = Sec1$(4)
- Sec1$(5) = MID$(Eski$, 63, 30)
- IF Sec1$(5) = SPACE$(30) THEN Sec1$(5) = Kim$
- Sec1$(6) = MID$(Eski$, 93, 16)
- Sec1$(7) = MID$(Eski$, 109, 40)
- FOR I = 1 TO 3
- Mak$(I) = ""
- NEXT
- IF INSTR(Sec1$(7), " ÿsim + ₧ifre ") > 0 THEN
- Mak$(1) = RTRIM$(Sec1$(5)) + "^M"
- Mak$(2) = RTRIM$(Sec1$(6)) + "^M"
- END IF
- IF INSTR(Sec1$(7), " ÿsim + E + ₧ifre ") > 0 THEN
- Mak$(1) = RTRIM$(Sec1$(5)) + "^ME^M"
- Mak$(2) = RTRIM$(Sec1$(6)) + "^M"
- END IF
- IF INSTR(Sec1$(7), " ÿsim + Y + ₧ifre ") > 0 THEN
- Mak$(1) = RTRIM$(Sec1$(5)) + "^MY^M"
- Mak$(2) = RTRIM$(Sec1$(6)) + "^M"
- END IF
- IF INSTR(Sec1$(7), " Esc + Esc + ÿsim + E + ₧ifre ") > 0 THEN
- Mak$(1) = CHR$(27) + CHR$(27)
- Mak$(2) = RTRIM$(Sec1$(5)) + "^ME^M"
- Mak$(3) = RTRIM$(Sec1$(6)) + "^M"
- END IF
- IF INSTR(Sec1$(7), " Esc + Esc + ÿsim + Y + ₧ifre ") > 0 THEN
- Mak$(1) = CHR$(27) + CHR$(27)
- Mak$(2) = RTRIM$(Sec1$(5)) + "^MY^M"
- Mak$(3) = RTRIM$(Sec1$(6)) + "^M"
- END IF
- RETURN
- Ekle:
- V9 = V
- Eski$ = Sec$(V)
- VeriAlYatay = 9
- GOSUB Durum
- Ekle2:
- PCOPY 3, 0
- Sec$(1) = "Karƒì sistemin ünvanì"
- Sec$(2) = "Telefon No"
- Sec$(3) = "Baºlantì Hìzì"
- Sec$(4) = "Echo"
- Sec$(5) = "Üye Adì Soyadì"
- Sec$(6) = "₧ifre"
- Sec$(7) = "Otomatik ÿƒlemler"
- Sec$(0) = "[ Telefon Defteri ]"
- MenuYatay = 8
- MenuDikey = 9
- MenuGenis = 60
- MenuYuksek = 8
- CALL CerceveCiz
- LOCATE MenuYatay, MenuDikey + MenuGenis - 5
- PRINT V9
- VeriTipi = 3
- FOR I = 1 TO 7
- COLOR Renk(9), Renk(10)
- LOCATE MenuYatay + I, MenuDikey + 2
- PRINT Sec$(I)
- COLOR Renk(1), Renk(2)
- LOCATE MenuYatay + I, MenuDikey + LEN(Sec$(I)) + 3
- PRINT Sec1$(I)
- NEXT
- DO
- V = VeriAlYatay - MenuYatay
- IF V = 3 THEN
- CALL BaudSec
- VeriAlYatay = VeriAlYatay + V8
- Sec1$(3) = Baud$
- GOTO Ekle2
- END IF
- IF V = 4 THEN
- Sec1$(0) = Echo$
- Sec$(0) = ""
- Cer$ = ""
- CALL Secim
- Cer$ = "Esc)Tamam"
- Sec1$(4) = MID$(Sec$(Yatay - MenuYatay), 3, 6)
- VeriAlYatay = VeriAlYatay + V8
- Echo$ = Sec1$(4)
- GOTO Ekle2
- END IF
- IF V = 7 THEN
- CALL OtomatikSec
- VeriAlYatay = 9
- Sec1$(7) = LEFT$(Oto$ + SPACE$(40), 40)
- GOTO Ekle2
- END IF
- VerialDikey = MenuDikey + LEN(Sec$(V)) + 3
- VerialBoy = LEN(Sec1$(V))
- Verial$ = Sec1$(V)
- CALL Verialma
- COLOR Renk(1), Renk(2)
- LOCATE MenuYatay + V, MenuDikey + LEN(Sec$(V)) + 3
- PRINT Verial$
- Sec1$(V) = Verial$
- SELECT CASE Z
- CASE 80
- CALL Artma
- V8 = 1
- CASE 72
- CALL Eksilme
- V8 = -1
- CASE 27
- EXIT DO
- CASE 13
- CALL Artma
- V8 = 1
- END SELECT
- LOOP
- Eski$ = SPACE$(149)
- MID$(Eski$, 1, 30) = Sec1$(1)
- MID$(Eski$, 31, 20) = Sec1$(2)
- MID$(Eski$, 51, 6) = Sec1$(3)
- MID$(Eski$, 57, 6) = Sec1$(4)
- MID$(Eski$, 63, 30) = Sec1$(5)
- MID$(Eski$, 93, 16) = Sec1$(6)
- MID$(Eski$, 109, 40) = Sec1$(7)
- LSET Veri$ = "G" + Eski$
- PUT #6, V9
- RETURN
- SonYaz:
- GOSUB DosyaOku
- CLOSE #6
- KILL DosyaAd$
- A$ = "MO $$.TE$"
- CLOSE #5
- OPEN "R", #5, A$, DosyaBoy
- FIELD #5, DosyaBoy AS Veri$
- V9 = 0
- FOR I = 1 TO I1
- IF Sec$(I) <> SPACE$(149) THEN
- V9 = V9 + 1
- LSET Veri$ = "G" + Sec$(I)
- PUT #5, V9
- END IF
- NEXT
- CLOSE #5
- NAME A$ AS DosyaAd$
- RETURN
- END SUB
-
- SUB Terminal
- Basla:
- Gid$(9) = ""
- IF Ekran$ = "ANSI" AND Ekra$ = "TTY " THEN Mesaj$ = " ANSI.SYS Yüklü Deºil !!": CALL MesajYazTerminal
- PCOPY 3, 0
- LOCATE , , 1
- CALL ModemAc
- Gelen$ = ""
- Ekran = 5
- Gid$(0) = "ATZ" + CHR$(13)
- CALL TerminalGidenler
- Mesaj$ = "!Modem install ediliyor,biraz bekleyin..."
- MesajYaz
-
- RR = FIX(TIMER)
- DO
- IF FIX(TIMER) - RR > 5 THEN
- Mesaj$ = "1Hatalì giriƒ var, kurulum tekrarlanacak, reset için bir tuƒsa basìn."
- MesajYaz
- CLOSE #3
- KILL "MODEM.KUR"
- DEF SEG = &HFFFF
- CALL absolute(0)
- END IF
- IF LOC(1) > 0 THEN
- A$ = A$ + INPUT$(LOC(1), #1)
- IF INSTR(A$, "OK" + CHR$(13) + CHR$(10)) > 0 THEN EXIT DO
- END IF
- LOOP
-
- COLOR Renk(2), Renk(1)
- CLS
- LOCATE 2, 1, 1
- CALL EkranAc
- Ekran = 0
- HatDolu = 0
- IF Kosul$ = "Açìk " THEN Mkr$ = RTRIM$(Katar$) + CHR$(13)
-
- DO
- CALL TerminalGelenler
-
- IF Ekran = 0 AND HatDolu = 0 THEN CALL EkranUstuYaz
-
- IF HatDolu = 1 AND Oto = 1 AND Makro < 3 THEN
- Makro = Makro + 1
- Mkr$ = Mkr$ + Mak$(Makro)
- END IF
- Gid$(0) = INKEY$
- IF Mkr$ <> "" THEN
- Gid$(0) = LEFT$(Mkr$, 1)
- IF Gid$(0) = "^" THEN
- IF MID$(Mkr$, 2, 1) = "M" THEN Gid$(0) = CHR$(13)
- Mkr$ = RIGHT$(Mkr$, LEN(Mkr$) - 1)
- END IF
- END IF
- IF Gid$(0) <> "" THEN
- IF LEN(Gid$(0)) = 2 THEN
- Z = ASC(RIGHT$(Gid$(0), 1))
- IF Z = 45 THEN CALL ModemKapa: EXIT SUB
- IF Z = 77 THEN Gid$(0) = " ": GOSUB Giden
- IF Z = 75 THEN Gid$(0) = CHR$(8): GOSUB Giden
- IF Z = 80 THEN Gid$(0) = CHR$(13) + CHR$(10): GOSUB Giden
- CALL TerminalMakrolar
- IF Gid$(9) = "1" THEN GOTO Basla
- ELSE
- Z = ASC(Gid$(0))
- DEF SEG = &H40
- ALT = PEEK(&H17) AND 4
- IF ALT = 4 AND Z < 27 AND Mkr$ = "" THEN
- Tu$ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- T$ = MID$(Tu$, Z, 1)
- FOR I = 1 TO 36
- IF LEFT$(Makro$(I), 1) = T$ THEN Mkr$ = RTRIM$(MID$(Makro$(I), 2, 50))
- NEXT
- ELSE
- IF Mkr$ <> "" THEN Mkr$ = RIGHT$(Mkr$, LEN(Mkr$) - 1)
- GOSUB Giden
- END IF
- END IF
- END IF
- LOOP
-
- Giden:
- GelGid$ = Gid$(0)
- CALL TerminalGidenler
- RETURN
- END SUB
-
- SUB TerminalChatGelen
- IF ASC(Z$) = 10 THEN EXIT SUB
- IF ASC(Z$) = 13 OR LEN(Gel$(Chat(1))) = 70 THEN
- Chat(1) = Chat(1) + 1
- IF Chat(1) = 9 THEN
- Gel$(9) = ""
- FOR I = 1 TO 8
- Gel$(I) = LEFT$(Gel$(I + 1) + SPACE$(70), 70)
- LOCATE 14 + I, MenuDikey + 1
- PRINT Gel$(I);
- NEXT
- Gel$(8) = ""
- Chat(1) = 8
- END IF
- ELSE
- T = LEN(Gel$(Chat(1)))
- IF Z$ = CHR$(8) AND T > 0 THEN
- Gel$(Chat(1)) = LEFT$(Gel$(Chat(1)), T - 1)
- LOCATE 14 + Chat(1), MenuDikey + 1
- PRINT Gel$(Chat(1)); " "
- ELSE
- IF Z$ <> CHR$(8) THEN Gel$(Chat(1)) = Gel$(Chat(1)) + Z$
- END IF
- END IF
- LOCATE 14 + Chat(1), MenuDikey + 1
- PRINT Gel$(Chat(1));
- LOCATE , , 1
- END SUB
-
- SUB TerminalChatGiden
- IF ASC(Gid$(0)) = 13 OR LEN(Gid$(Chat(0))) = 70 THEN
- Chat(0) = Chat(0) + 1
- IF Chat(0) = 9 THEN
- Gid$(9) = ""
- FOR I = 1 TO 8
- Gid$(I) = LEFT$(Gid$(I + 1) + SPACE$(70), 70)
- LOCATE 2 + I, MenuDikey + 1
- PRINT Gid$(I);
- NEXT
- Gid$(8) = ""
- Chat(0) = 8
- END IF
- ELSE
- T = LEN(Gid$(Chat(0)))
- IF Gid$(0) = CHR$(8) AND T > 0 THEN
- Gid$(Chat(0)) = LEFT$(Gid$(Chat(0)), T - 1)
- LOCATE 2 + Chat(0), MenuDikey + 1
- PRINT Gid$(Chat(0)); " "
- END IF
- IF Gid$(0) <> CHR$(8) THEN Gid$(Chat(0)) = Gid$(Chat(0)) + Gid$(0)
- END IF
- LOCATE 2 + Chat(0), MenuDikey + 1
- PRINT Gid$(Chat(0));
- LOCATE , , 1
- END SUB
-
- SUB TerminalGelenler
- IF Ekran = 1 THEN EXIT SUB
- DO
- Gel$(0) = ""
- IF LOC(1) THEN Gel$(0) = INPUT$(LOC(1), #1)
- IF Gel$(0) = "" THEN EXIT DO
- Gelen$ = Gelen$ + Gel$(0)
- IF Ekran = 5 THEN EXIT SUB
- IF LEN(Gelen$) > 250 THEN Gelen$ = RIGHT$(Gelen$, 100)
- IF INSTR(Gelen$, CHR$(12)) > 0 THEN Oto = 1
- IF Tutanak$ = "Açìk " THEN
- FOR I = 1 TO LEN(Gel$(0))
- Z$ = MID$(Gel$(0), I, 1)
- LSET Veri1$ = Z$: PUT #7, LOF(7) + 1
- NEXT
- END IF
- IF Ekran = 3 THEN
- FOR I = 1 TO LEN(Gel$(0))
- Z$ = MID$(Gel$(0), I, 1)
- CALL TerminalChatGelen
- NEXT
- ELSE
- IF Ekran = 0 THEN
- IF Ek$ = "CON" THEN
- IF HatDolu = 0 THEN PRINT #2, CHR$(27); "[32;44m";
- PRINT #2, Gel$(0);
- ELSE
- IF HatDolu = 0 THEN COLOR Renk(7)
- FOR I = 1 TO LEN(Gel$(0))
- Z$ = MID$(Gel$(0), I, 1)
- IF Z$ <> CHR$(13) THEN PRINT #2, Z$;
- NEXT
- END IF
- END IF
- END IF
- IF Ekran < 4 THEN CALL TerminalGelenleriYorumla
- LOOP
- END SUB
-
- SUB TerminalGelenleriYorumla
- IF HatDolu = 1 AND INSTR(Gelen$, "NO CARRIER") > 0 THEN
- Gid$(0) = CHR$(10) + CHR$(13)
- Gelen$ = ""
- CALL TerminalGidenler
- CALL TerminalGelenler
- HatDolu = 0
- Mesaj$ = " Baºlantì Kesildi !!"
- CALL MesajYazTerminal
- Sec1$(1) = "1"
- END IF
- IF HatDolu = 1 THEN
- FOR I = 1 TO 5
- IF INSTR(Gelen$, Protokol$(I)) > 0 THEN
- Gelen$ = ""
- CALL EkranSakla
- CALL ProtokolOku
- A$ = MID$(Sec1$(I), 17, 12)
- B$ = MID$(Sec1$(I), 29, 30)
- CALL AlmaDizinineGec
- SHELL Dizin$(4) + A$ + B$
- CHDIR ".."
- CALL EkranKoy
- END IF
- NEXT
- END IF
- IF HatDolu = 1 THEN EXIT SUB
- IF INSTR(Gelen$, "CONNECT") > 0 THEN
- Gelen$ = ""
- Ekran = 0
- HatDolu = 1
- END IF
- IF INSTR(Gelen$, "RING") > 0 THEN
- Gelen$ = ""
- FOR I = 1 TO 15
- SOUND 600, 1
- SOUND 1200, 1
- NEXT
- IF Cevap$ = "Açìk " THEN
- Gid$(0) = CHR$(13) + CHR$(10) + "ATA" + CHR$(13)
- CALL TerminalGidenler
- ELSE
- Mesaj$ = " Biri sizi arìyor. Cevaplamak için Alt+O' ya basìnìz"
- CALL MesajYazTerminal
- END IF
- Gelen$ = ""
- END IF
- END SUB
-
- SUB TerminalGidenler
- FOR I = 1 TO LEN(Gid$(0))
- PRINT #1, MID$(Gid$(0), I, 1);
- CALL TerminalGelenler
- NEXT
- IF Ekran = 0 AND Echo$ = "Açìk " THEN
- IF HatDolu = 0 THEN
- IF Ek$ = "CON" THEN PRINT #2, CHR$(27); "[33;44m"; ELSE COLOR Renk(2), Renk(1)
- END IF
- PRINT #2, Gid$(0);
- END IF
- IF Ekran = 3 THEN CALL TerminalChatGiden
- END SUB
-
- SUB TerminalMakrolar
- IF Z = 37 THEN
- CALL ModemKapa
- CALL ModemAc
- Mesaj$ = " Baºlantì Kesildi !!"
- CALL MesajYazTerminal
- Sec1$(1) = "1"
- END IF
- IF Z = 48 THEN
- IF Ekran = 0 THEN
- CALL EkranSakla
- Ekran = 3
- PCOPY 3, 0
- MenuYatay = 2
- MenuDikey = 4
- MenuGenis = 70
- MenuYuksek = 9
- Cer$ = ""
- Sec$(0) = ""
- CALL CerceveCiz
- LOCATE MenuYatay, MenuDikey + 5
- PRINT "[ Sizin Yazdìklarìnìz ]"
- MenuYatay = 14
- CALL CerceveCiz
- Cer$ = "Esc)Tamam"
- LOCATE MenuYatay, MenuDikey + 5
- PRINT "[ Karēdan Gelenler ]"
- FOR I = 1 TO 9
- Gel$(I) = ""
- Gid$(I) = ""
- NEXT
- LOCATE 3, MenuDikey + 1, 1
- Chat(0) = 1
- Chat(1) = 1
- COLOR Renk(1), Renk(2)
- Mesaj$ = "1Chat Modu Çìkìƒì yine Alt+B'dir"
- CALL MesajYaz
- Mkr$ = Tercih$
- ELSE
- Ekran = 0
- CALL EkranKoy
- END IF
- END IF
- IF Ekran = 3 THEN EXIT SUB
- IF Z = 44 THEN CALL Pencere
- IF Z = 46 THEN
- COLOR Renk(2), Renk(1)
- CLS
- LOCATE 2, 1
- END IF
- IF Z = 73 THEN
- CALL EkranSakla
- CALL DosyaGonder
- CALL EkranKoy
- END IF
- IF Z = 81 THEN
- CALL EkranSakla
- CALL DosyaAl
- CALL EkranKoy
- END IF
- IF Z = 30 THEN
- CALL EkranSakla
- CALL Kurulumlar
- CALL EkranKoy
- END IF
- IF Z = 20 THEN
- CALL EkranSakla
- CALL TelefonDefteri
- CALL EkranKoy
- END IF
- IF Z = 32 THEN
- CALL EkranSakla
- CLS
- PRINT "Geri Dönüƒ için EXIT yazmalìsìnìz..."
- SHELL ""
- CALL EkranKoy
- END IF
- IF Z = 18 THEN
- IF Echo$ = "Açìk " THEN Echo$ = "Kapalì" ELSE Echo$ = "Açìk "
- Mesaj$ = " Local Echo ₧imdi " + Echo$
- CALL MesajYazTerminal
- END IF
- IF Z = 24 THEN
- IF Cevap$ = "Açìk " THEN Cevap$ = "Kapalì" ELSE Cevap$ = "Açìk "
- Mesaj$ = " Otomatik Cevap Verme ₧imdi " + Cevap$
- CALL MesajYazTerminal
- END IF
- IF Z = 31 THEN
- IF Ses$ = "Açìk " THEN
- Ses$ = "Kapalì"
- Muzik$ = "P1"
- ELSE
- Ses$ = "Açìk "
- Muzik$ = "O2L8CD"
- END IF
- Mesaj$ = " Ses ₧imdi " + Ses$
- IF Ses$ = "Kapalì" THEN Muzik$ = "P4"
- CALL MesajYazTerminal
- END IF
- END SUB
-
- SUB TutanakAc
- CLOSE #7
- OPEN "R", #7, DosyaAdi$, DosyaBoyu
- FIELD #7, DosyaBoyu AS Veri1$
- END SUB
-
- SUB Verialma
- IF Verial$ = "" THEN Verial$ = SPACE$(VerialBoy)
- F = 1: G = 1
- DO
- LOCATE VeriAlYatay, VerialDikey
- COLOR Renk(5), Renk(6)
- IF F > VerialBoy THEN F = VerialBoy: G = 0
- PRINT Verial$
- LOCATE VeriAlYatay, VerialDikey + F - 1, 1
- IF JL = 1 THEN LOCATE , , , 4, 7 ELSE LOCATE , , , 6, 7
- DEF SEG = 0: POKE 1050, PEEK(1052)
- DO
- Tus$ = INKEY$
- IF Mkr$ <> "" THEN
- Tus$ = LEFT$(Mkr$, 1)
- Mkr$ = RIGHT$(Mkr$, LEN(Mkr$) - 1)
- END IF
- IF Tus$ <> "" THEN EXIT DO
- LOOP
-
- IF LEN(Tus$) = 2 THEN
- Z = ASC(RIGHT$(Tus$, 1))
- SELECT CASE Z
- CASE 77
- F = F + 1
- CASE 75
- IF F > 1 THEN F = F - 1
- CASE 83
- Verial$ = LEFT$(Verial$, F - 1) + RIGHT$(Verial$, VerialBoy - F) + " "
- CASE 82
- IF JL = 0 THEN JL = 1 ELSE JL = 0
- CASE 80, 72, 73, 81
- IF VeriTipi < 5 THEN EXIT DO
- END SELECT
- ELSE
- Z = ASC(Tus$)
- DEF SEG = &H40
- ALT = PEEK(&H17) AND 4
- IF ALT = 4 AND Z < 27 THEN
- Tu$ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- T$ = MID$(Tu$, Z, 1)
- FOR I = 1 TO 36
- IF LEFT$(Makro$(I), 1) = T$ THEN Mkr$ = RTRIM$(MID$(Makro$(I), 2, 50))
- NEXT
- ELSE
- SELECT CASE Z
- CASE 27, 13, 9, 240
- EXIT DO
- CASE ELSE
- IF Z = 242 THEN
- JL = 1
- Tus$ = CHR$(SCREEN(VeriAlYatay, VerialDikey + F - 1))
- Y = INSTR(Al$(0), Tus$)
- IF Y > 0 THEN Tus$ = MID$(Al$(1), Y, 1)
- END IF
- IF Z = 8 THEN
- IF F > 1 THEN
- F = F - 1
- Verial$ = LEFT$(Verial$, F - 1) + RIGHT$(Verial$, VerialBoy - F) + " "
- END IF
- ELSE
- Normal = 0
- IF INSTR(Al$(VeriTipi), Tus$) > 0 THEN Normal = 1
- IF Normal = 1 THEN
- IF JL = 1 THEN MID$(Verial$, F, 1) = Tus$ ELSE Verial$ = LEFT$(Verial$, F - 1) + Tus$ + MID$(Verial$, F, VerialBoy - F)
- F = F + 1
- ELSE
- Mesaj$ = " Geçersiz (rakam veya harf) Tuƒa Basìldì"
- CALL MesajYaz
- END IF
- END IF
- END SELECT
- END IF
- END IF
- LOOP
- END SUB
-
-